home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
HPAVC
/
HPAVC CD-ROM.iso
/
ANSIVIEW.ZIP
/
ANSITEST.PAS
next >
Wrap
Pascal/Delphi Source File
|
1991-01-30
|
6KB
|
196 lines
{ DEFINE TVSPY} {Define this if you want the TVSPY program installed}
Program ANSI_Test;
Uses Dos, App, Objects, Menus, Drivers, Views, Gadgets, Memory,
{$IFDEF TVSPY}
HeapWin, EventWin,
{$ENDIF}
AnsiView;
CONST MaxScreen = 100;
TYPE PMyWindow = ^TMyWindow;
TMyWindow = OBJECT(TANSIView)
Count : BYTE;
CONSTRUCTOR Init;
PROCEDURE HandleEvent(VAR Event : TEvent); VIRTUAL;
END;
PMyApp = ^TMyApp;
TMyApp = OBJECT(TApplication)
Clock : PClockView;
Heap : PHeapView;
CONSTRUCTOR Init;
PROCEDURE HandleEvent(VAR Event : TEvent); VIRTUAL;
PROCEDURE GetEvent(VAR E : TEvent); VIRTUAL;
PROCEDURE InitStatusLine; VIRTUAL;
PROCEDURE InitMenuBar; VIRTUAL;
PROCEDURE Idle; VIRTUAL;
PROCEDURE NewWindow;
END;
VAR MyApp : TMyApp;
CONST cmNewWin = 100;
cmWriteLN = 101;
cmGotoXY = 102;
cmRandom = 103;
cmWacka = 104;
CONSTRUCTOR TMyWindow.Init;
VAR R : TRect;
L : TPoint;
X : BYTE;
Y : BYTE;
BEGIN
X := RANDOM(30);
Y := RANDOM(10);
R.Assign(X,Y,X + 50,Y + 10);
L.X := 80;
L.Y := 25;
TANSIView.Init(R,L,'Test Window',0);
Count := 0;
END;
PROCEDURE TMyWindow.HandleEvent;
VAR i : INTEGER;
BEGIN
TANSIView.HandleEvent(Event);
CASE Event.What OF
evCommand : CASE Event.Command OF
cmWriteLN : PrintLN('Another fine mess you found');
cmGotoXY : GotoXY(RANDOM(Interior^.MaxDim.X),RANDOM(Interior^.MaxDim.Y));
cmRandom : FOR i := 1 TO 500 DO
PrintChar(CHAR(RANDOM(96) + 32));
cmWacka : BEGIN
ClrScr;
FOR i := 1 TO 8 DO
Print('1234567890');
PrintLN('Another fine test of the system');
PrintLN('This is going to test some insertion');
PrintLN('and deletion commands...');
GotoXY(8,1);
print(#27 + '[6P');
GotoXY(8,2);
print(#27 + '[6@');
GotoXY(1,6);
PrintLN('Finished...')
END;
ELSE EXIT
END;
ELSE EXIT
END;
ClearEvent(Event)
END;
CONSTRUCTOR TMyApp.Init;
VAR R : TRect;
BEGIN
TApplication.Init;
RegisterANSIView;
GetExtent(R);
R.A.X := R.B.X - 9;
R.B.Y := R.A.Y + 1;
Clock := NEW(PClockView,Init(R));
Insert(Clock);
GetExtent(R);
Dec(R.B.X);
R.A.X := R.B.X - 9;
R.A.Y := R.B.Y - 1;
Heap := NEW(PHeapView,Init(R));
Insert(Heap);
{$IFDEF TVSPY}
Desktop^.GetExtent(R);
R.Assign(R.A.X,R.B.Y-10,R.B.X div 2,R.B.Y);
EventWindow := NEW(PEventWindow,Init(R,'Event Window',wnNoNumber,100));
Desktop^.Insert(EventWindow);
EventWindow^.InsertCommand(cmNewWin,'cmNewWin');
EventWindow^.InsertCommand(cmWriteLN,'cmWriteLN');
EventWindow^.InsertCommand(cmGotoXY,'cmGotoXY');
EventWindow^.InsertCommand(cmRandom,'cmRandom');
EventWindow^.InsertCommand(cmWacka,'cmWacka');
{$ENDIF}
END;
PROCEDURE TMyApp.HandleEvent;
BEGIN
TApplication.HandleEvent(Event);
CASE Event.What OF
evCommand : CASE Event.Command OF
cmNewWin : NewWindow;
ELSE EXIT
END;
ELSE EXIT
END;
ClearEvent(Event)
END;
PROCEDURE TMyApp.Idle;
BEGIN
TApplication.Idle;
Clock^.Update;
Heap^.Update;
END;
PROCEDURE TMyApp.GetEvent;
BEGIN
TApplication.GetEvent(E);
{$IFDEF TVSPY}
EventWindow^.DisplayEvent(E);
{$ENDIF}
END;
PROCEDURE TMyApp.InitStatusLine;
VAR R : TRect;
BEGIN
GetExtent(R);
R.A.Y := R.B.Y - 1;
StatusLine := NEW(PStatusLine,Init(R,
NewStatusDef(0,$FFFF,
NewStatusKey('~Alt-X~ Exit',kbAltX,cmQuit,
NewStatusKey('~Alt-F3~ Close',kbAltF3,cmClose,
NIL)),
NIL)
))
END;
PROCEDURE TMyApp.InitMenuBar;
VAR R : TRect;
BEGIN
GetExtent(R);
R.B.Y := R.A.Y + 1;
MenuBar := NEW(PMenuBar,Init(R,NewMenu(
NewSubMenu('~F~ile',hcNoContext,NewMenu(
NewItem('~O~pen','F3',kbF3,cmNewWin,hcNoContext,
NewItem('~Q~uit','Alt-X',kbAltX,cmQuit,hcNoContext,
NIL))),
NewSubMenu('~V~irtual',hcNoContext,NewMenu(
NewItem('~W~riteLN','',kbNoKey,cmWriteLN,hcNoContext,
NewItem('~G~otoXY','',kbNoKey,cmGotoXY,hcNoContext,
NewItem('~R~andom','',kbNoKey,cmRandom,hcNoContext,
NewItem('W~a~cka','',kbNoKey,cmWacka,hcNoContext,
NIL))))),
NIL))
)))
END;
PROCEDURE TMyApp.NewWindow;
VAR PPtr : PMyWindow;
BEGIN
PPtr := NEW(PMyWindow,Init);
IF PPtr <> NIL THEN
DeskTop^.Insert(PPtr);
END;
BEGIN
MyApp.Init;
MyApp.Run;
MyApp.Done
END.